﻿namespace PrearrangedChaos.AgileZen.Service
{
    internal class ColorFilter : IColorFilter
    {
        private readonly string _filterName;

        internal ColorFilter(string filterName)
        {
            this._filterName = filterName;
        }

        public ZenFilter Red
        {
            get { return new ZenFilter(string.Format("{0}:\"red\"", this._filterName)); }
        }

        public ZenFilter Blue
        {
            get { return new ZenFilter(string.Format("{0}:\"blue\"", this._filterName)); }
        }

        public ZenFilter Green
        {
            get { return new ZenFilter(string.Format("{0}:\"green\"", this._filterName)); }
        }

        public ZenFilter Grey
        {
            get { return new ZenFilter(string.Format("{0}:\"grey\"", this._filterName)); }
        }

        public ZenFilter Orange
        {
            get { return new ZenFilter(string.Format("{0}:\"orange\"", this._filterName)); }
        }

        public ZenFilter Purple
        {
            get { return new ZenFilter(string.Format("{0}:\"purple\"", this._filterName)); }
        }

        public ZenFilter Teal
        {
            get { return new ZenFilter(string.Format("{0}:\"teal\"", this._filterName)); }
        }

        public ZenFilter Yellow
        {
            get { return new ZenFilter(string.Format("{0}:\"yellow\"", this._filterName)); }
        }

        public ZenFilter NotRed
        {
            get { return new ZenFilter(string.Format("not({0}:\"red\")", this._filterName)); }
        }

        public ZenFilter NotBlue
        {
            get { return new ZenFilter(string.Format("not({0}:\"blue\")", this._filterName)); }
        }

        public ZenFilter NotGreen
        {
            get { return new ZenFilter(string.Format("not({0}:\"green\")", this._filterName)); }
        }

        public ZenFilter NotGrey
        {
            get { return new ZenFilter(string.Format("not({0}:\"grey\")", this._filterName)); }
        }

        public ZenFilter NotOrange
        {
            get { return new ZenFilter(string.Format("not({0}:\"orange\")", this._filterName)); }
        }

        public ZenFilter NotPurple
        {
            get { return new ZenFilter(string.Format("not({0}:\"purple\")", this._filterName)); }
        }

        public ZenFilter NotTeal
        {
            get { return new ZenFilter(string.Format("not({0}:\"teal\")", this._filterName)); }
        }

        public ZenFilter NotYellow
        {
            get { return new ZenFilter(string.Format("not({0}:\"yellow\")", this._filterName)); }
        }

    }
}